<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <a href="./h5-测试文件1.html">测试路径1</a>
    <div id="puHis">测试push路径</div>
<script>
    var his = history; //跳转历史
    console.log(his)
    console.log(his.length) //历史数据长度
    console.log(his.state) //?
    //his.back() 前往上一页，(不会添加history路径)用户可点击浏览器左上角的返回按钮模拟此方法，等价于history.go(-1)。
    //History.forward() 前往上一页，(不会添加history路径)用户可点击浏览器左上角的返回按钮模拟此方法，等价于history.go(-1)。
    //History.go()：(-1：后退 1：前进  0：刷新)通过当前页面的相对位置从浏览器历史记录（会话记录）加载页面。比如，参数为-1的时候为上一页，参数为1的时候为下一页。当整数参数超出界限时，
    //例如：如果当前页为第一页，前面已经没有页面了，我传参的值为-1，那么这个方法没有任何效果也不会报错。调用没有参数的go()方法或者不是整数的参数时也没有效果
    //服务端测试，直接使用引起跨域history.pushState(state, title, url); //@param1:数据。@param2：标题 @param3:添加的url
    //replaceState()方法
    //history.replaceState() 用起来很像pushState()，除了replaceState()是用来修改当前的history实体而不是创建一个新的。
    //这个方法有时会很有用，当 你需要对某些用户行为作反应而更新一个state对象或者当前history实体时，可以使用它来更新state对象或者当前history实体的url。
    //popstate事件
    //当history实体被改变时，window.onpopstate = function(){} popstate事件将会发生。如果history实体是有pushState和replaceState方法产生的，popstate事件的state属性会包含一份来自history实体的state对象的拷贝
    //读取当前的state
    //当页面加载时，它可能会有一个非空的state对象。这可能发生在当页面设置一个state对象(使用pushState或者replaceState)之后用户重启了浏览器。当页面重新加载，页面将收到onload事件，但不会有popstate事件。然而，如果你读取history.state属性，将在popstate事件发生后得到这个state对象
    //var currentState = history.state
</script>
</body>
</html>